package java.wxw;


import java.util.Scanner;

/**
 * 命令行输入文件名，执行打开文件操作
 * dir open write
 * @author weisuhang
 */
public class OpenFile extends Final {
    public static void open(){
        String fileName = "";
        int i,k;
//       判断当前用户与当前目录的所有者是否统一
        if(!userName.equals(dirName)){ //不统一; ?dirname是目录名还是目录所有者的名字
            System.out.println("错误!,只能打开自己的目录");
        }else { //统一
            System.out.println("请输入文件名");
            Scanner scanner = new Scanner(System.in);
            if (scanner.hasNext()){
                fileName = scanner.next();
            }
            scanner.close();
//            去掉文件名中的空格
            fileName.replaceAll(" +","");
//            返回文件号
            i = new FileExist().fileExsit(fileName);
//            文件存在
            if (i>=0){
//                获取目录号
                k = new DirExist().dirExist(dirName);
                if(openIf[k][i].openIf==1){
                    System.out.println("错误！文件已经被打开！");
                }
                else{ //文件还未被打开
//                    根据文件属性判断文件是否可以打开
                    if(userDirs[k].userFile[i].fileMode==0||userDirs[k].userFile[i].fileMode==1||userDirs[k].userFile[i].fileMode==2){
                        openIf[k][i].openIf=1;// 设置文件已经打开
                        openIf[k][i].openMode=userDirs[k].userFile[i].fileMode; // 文件打开模式填入
                        System.out.println(fileName+"文件已经成功打开");
                    }else{// 保护状态文件无法打开
                        System.out.println(fileName+"文件处于保护状态，无法打开");
                    }
                }
            }else{
                System.out.println(fileName+"文件不存在");
            }
        }
    }
}
